package com.ytjj.qmyx.admin.service;

import com.ytjj.common.api.CommonPage;
import com.ytjj.common.api.CommonResult;
import com.ytjj.qmyx.admin.model.OrderDisparitiesRefund;
import com.ytjj.qmyx.admin.model.OrdersDelay;
import com.ytjj.qmyx.admin.model.request.*;
import com.ytjj.qmyx.admin.model.response.CustomerResponse;
import com.ytjj.qmyx.admin.model.response.OrderDisparitiesRefundResponse;
import com.ytjj.qmyx.mall.model.BankerResponse;

import java.math.BigDecimal;
import java.util.List;


public interface CustomerService {

    CommonPage<CustomerResponse> getCustomerOrderList(CustomerRequest customerRequest);

    CommonPage<CustomerNewResponse> getNewCustomerOrderList(CustomerNewRequest request);

    List<BankerResponse> getBankerResponses(List<Integer> bankerIdList);

    void updateOrderStatus(OrderStatusRequest orderStatusRequest);

    int addIntercept(Integer id, Integer customerId, String customerName,String remarks, String recoveryOrderNo);

    int updateOrderInfo(UpdateOrderRequest updateOrderRequest);

    List<CustomerNewResponse> newOrderExportList(CustomerNewRequest request);

    boolean addOrderDelayRemark(OrdersDelay ordersDelay);

    CommonResult repeatOrderRefund(String orderNo);

    CommonResult disparitiesRefundConfirm(String orderNo);

    CommonResult disparitiesRefund(String orderNo, BigDecimal amount,Integer orderInfoId,String remark,Integer undertakeParty);

    CommonPage<OrderDisparitiesRefundResponse> disparitiesRefundList(OrderDispatiesRefundListRequest request);

    void markRefund(String childOrderNo,Integer state);

    /**
     * 修改补单或者订单的商品规格
     * @param request
     * @return
     */
    int updateOrderProductSpec(UpdateOrderProductSpecRequest request);
}
